package Dominio;

import Persistencia.PersistenciaException;
import Persistencia.Pers_Fachada;

class Gestor_Usuario {

	public void createCliente(PerfilData cliente) throws DominioException {
		cliente.get_usuario().set_rol(Rol.CLIENTE);
		createUser(cliente);
	}

	public void createTrabajador(PerfilData pd) throws DominioException {
		pd.get_usuario().set_rol(Rol.TRABAJADOR);
		createUser(pd);
	}

	private void createUser(PerfilData user) throws DominioException {
		try {
			new Pers_Fachada().createUser(user);
		} catch (PersistenciaException e) {
			throw new DominioException();
		}
	}

	public PerfilData loginUser(String nick, String pass)
			throws DominioException {
		try {
			PerfilData pd = new Pers_Fachada().getUser(nick);
			if (pd.get_usuario().get_pass().compareTo(pass) != 0) {
				throw new DominioException();
			}
			return pd;
		} catch (PersistenciaException e) {
			throw new DominioException();
		}
	}

	public void updateUser(PerfilData user) throws DominioException {
		try {
			new Pers_Fachada().updateUser(user);
			/*
			 * PerfilData o = new Pers_Fachada().getUser(user.get_usuario()
			 * .get_nick()); if (o.get_usuario().equals(user.get_usuario())) {
			 * new Pers_Fachada().updateUser(user); } else { throw new
			 * DominioException(); }
			 */
		} catch (PersistenciaException e1) {
			e1.printStackTrace();
			throw new DominioException();
		}
	}

	public void deleteUser(PerfilData user) throws DominioException {
		try {
			if (!new Pers_Fachada().deleteUser(user)) {
				throw new DominioException();
			}
		} catch (PersistenciaException e) {
			throw new DominioException();
		}
	}

}
